package br.com.afi.pattern.repository.hibernate;

import java.io.Serializable;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import br.com.afi.pattern.model.Model;
import br.com.afi.pattern.repository.GenericRepo;
import br.com.afi.util.hibernate.SessionManager;

/**
 * Essa classe possui os métodos genéricos do Hibernate para todos os repositórios.
 * 
 * @author André de Fontana Ignacio
 * @version 1.0
 * @param <E> Tipo da entidade
 * @param <ID> Tipo da chave primária do Model(entidade)
 */
public class GenericHibernateRepo<E extends Model<ID>, ID extends Serializable> extends SessionManager<E, ID> implements GenericRepo<E, ID>
{
	/**
	 * Construtor
	 */
	public GenericHibernateRepo()
	{
		super();
	}
	
	/**
	 * Construtor
	 * 
	 * @param session Sessão
	 */
	public GenericHibernateRepo( Session session )
	{
		super( session );
	}
	
	/**
	 * Construtor
	 * 
	 * @param sessionFactory Fabrica de Sessões
	 */
	public GenericHibernateRepo( SessionFactory sessionFactory )
	{
		super( sessionFactory );
	}
}
